wayland: Fix an endless loop
authorRui Matos <tiagomatos@gmail.com>
Fri, 15 Jan 2016 17:35:25 +0000 (18:35 +0100)
committerRui Matos <tiagomatos@gmail.com>
Fri, 15 Jan 2016 17:40:43 +0000 (18:40 +0100)
gdk/wayland/gdkdevice-wayland.c

index f0836cddaa3d0eaca5000f2bda4a391f0cf68eee..a4edcbf63d5ca94d64983bb569823dc210a4d254 100644 (file)
@@ -2674,11 +2674,11 @@ _gdk_wayland_device_manager_remove_seat (GdkDeviceManager *manager,
                                          guint32           id)
 {
   GdkDisplay *display = gdk_device_manager_get_display (manager);
-  GList *l;
+  GList *l, *seats;
 
-  l = gdk_display_list_seats (display);
+  seats = gdk_display_list_seats (display);
 
-  while (l)
+  for (l = seats; l != NULL; l = l->next)
     {
       GdkWaylandSeat *seat = l->data;
 
@@ -2688,6 +2688,8 @@ _gdk_wayland_device_manager_remove_seat (GdkDeviceManager *manager,
       gdk_display_remove_seat (display, GDK_SEAT (seat));
       break;
     }
+
+  g_list_free (seats);
 }
 
 static void